package cn.bonoon.kernel.annotations;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * 配置参数是否需要唯一值，即同个type和key下必须唯一
 * 这个唯一值不同于数据库的字段的唯一值，因为这里的唯一值有范围的限定，如：同个域里有相同的关键词
 * 
 * @author jackson
 *
 */
@Target(FIELD)
@Retention(RUNTIME)
public @interface Unique {
	
	/**
	 * msg 可用于出现重新值时提示，使用String.format(msg, arg...)的格式；并且只允许出现一个参数
	 * @return
	 */
	String value() default "存在相同的关键词%s";
	
//	/**
//	 * 定义不允许出现的关键词，如：key,int,long等...
//	 * 这里只有被定义的字段为字符串的时候才有效
//	 * @return
//	 */
//	String[] excludes() default {};
	
	UniqueType type() default UniqueType.DEFAULT;
}
